// index.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  data: {
    userInfo: {
      avatarUrl: defaultAvatarUrl,
      nickName: '',
    },
    termsContent:"《网极云用户须知》\n\n1. 请遵守相关法律法规。\n2. 请尊重他人的隐私权。\n3. 请合理使用平台资源。\n4. 请不要发布违法违规内容。\n5. 请妥善保管您的账号信息。\n",
    hasUserInfo: false,
    canIUseGetUserProfile: wx.canIUse('getUserProfile'),
    canIUseNicknameComp: wx.canIUse('input.type.nickname'),
    check:false,
    h:0,
    showModal:false
  },
  onShow: function(e) {
    // 登录
    const self =this;
    wx.getSystemInfo({
      success: function(res) {
        self.setData({
          h:res.windowHeight
        })
      }
    });
    wx.showModal({
      title: '授权', // 弹窗标题
      content: '是否同意授权使用头像/昵称以获取完整服务', // 弹窗内容
      success: function(res) {
        if (res.confirm) {
          // 用户同意后的逻辑
          self.login(function() {
            // 页面创建时执行的操作
            const avatarUrl = wx.getStorageSync("avatarurl")||defaultAvatarUrl
            const nickName  = wx.getStorageSync("username")
            self.setData({ // 设置页面数据
              "userInfo.avatarUrl": avatarUrl,
              "userInfo.nickName": nickName,
              hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
            });
            self.data.check=self.data.hasUserInfo
          });
        } else if (res.cancel) {
          // 用户拒绝后的逻辑
          wx.navigateBack({
            delta: 100, // 返回的页面数，如果 delta 大于现有页面数，则返回到首页
          });
        }
      }
    });
  },
  login: function(callback) {
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        wx.request({
          url: 'https://zdw666.fun/wjy/login', // 后端接口URL
          method: 'POST',
          data: {
            code: res.code // 从wx.login获取的code
          },
          success: function(res) {
            if (res.statusCode === 200) {
              // 请求成功
              wx.setStorageSync('openid', res.data.data.openid)
              wx.setStorageSync('avatarurl', res.data.data.avatarurl)
              wx.setStorageSync('username', res.data.data.username)
              wx.setStorageSync('id', res.data.data.id)
              wx.setStorageSync('logined', true)
              callback();
            } else {
              // 服务器返回非200状态码
              console.error('登录失败：', res.errMsg);
              callback();
            }
          },
          fail: function(error) {
            // 请求失败
            console.error('请求失败：', error);
            callback();
          }
        });
      }
    });
  },
  bindViewTap() {
    const self = this;
    if(self.data.check){
      wx.switchTab ({
        url: '../index/index'
      });
      return;
    }
    wx.uploadFile({
      url: "https://zdw666.fun/wjy/setUserInfo",
      // 开发者服务器URL
      filePath: self.data.userInfo.avatarUrl,
      // 要上传文件资源的路径
      name: "avatar",
      // 必填，后台用来解析的文件名
      formData: {
        "nickName": self.data.userInfo.nickName,
        "openId":wx.getStorageSync("openid")
      },
      success(uploadRes) {
        const data =JSON.parse(uploadRes.data)
        console.log("上传成功", data);
        wx.setStorageSync('avatarurl', data.data.avatarurl)
        wx.setStorageSync('openid', data.data.openid)
        wx.setStorageSync('username', data.data.username)
        wx.setStorageSync('id', data.data.id)
        wx.switchTab ({
          url: '../index/index'
        })
      },
      fail(uploadErr) {
        console.error("上传失败", uploadErr);
      }
    });
  },
  unbindViewTap(){
    const self = this;
    wx.clearStorageSync();
    const avatarUrl = wx.getStorageSync("avatarurl")||defaultAvatarUrl
    const nickName  = wx.getStorageSync("username")
    console.log(avatarUrl)
    self.setData({ // 设置页面数据
      "userInfo.avatarUrl": avatarUrl,
      "userInfo.nickName": nickName,
      "hasUserInfo": nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    });
    self.data.check=self.data.hasUserInfo,
    // 用户拒绝后的逻辑
    wx.navigateBack({
      delta: 100, // 返回的页面数，如果 delta 大于现有页面数，则返回到首页
    });
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    const { nickName } = this.data.userInfo
    this.setData({
      "userInfo.avatarUrl": avatarUrl,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  onInputChange(e) {
    const nickName = e.detail.value
    const { avatarUrl } = this.data.userInfo
    this.setData({
      "userInfo.nickName": nickName,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  show(){
    this.setData({
      showModal: ~this.data.showModal
    });
  },
  closeModal(){
    this.setData({
      showModal: ~this.data.showModal
    });
  }
})
